/* Benchmarks for the PionterC verifier. */

// list visit

struct list
{
  int data;
  struct list* next;
};

/*@ let list(l) = (l==null) ||
  @                  (({l}) && list(l->next))
  @ in  list(l)
  @ end
  @*/

int test(struct list* l)
{
  if (l==null)
    return 0;
  else if (l->next==null)
         return l->data;
       else return l->next->data;
}
/*@ 
  @*/
